SIP processing devices such as for example Session Border Controllers (SBCs) provide various features and services such as for example security, interoperability, routing and other functions in a Session Initiation Protocol (SIP) network. A service provider may use an SBC to support thousands of sessions and broad signaling interworking (to support more peer connections with international carriers); an enterprise may need an SBC to manage dial plans and policies across multiple PBX systems.
One of the most important Session Border Controller services/features is the ability to support high capacity requirements for real-time, multimedia SIP traffic, e.g., Voice Over Internet Protocol (VOIP) call session traffic within a SBC system that is highly scalable. To achieve such features, a cluster of SBCs operating together is often utilized. Load balancing of the SIP processing activities (e.g., registrations, calls, etc.) across the SBC instances is necessary to achieve such services.
However, there are numerous issues when balancing SIP load across a cluster of SIP processing entities, such as SBCs. Simplistic load balancing schemes (such as multiple routes in the peers) are not practical in many such instances. This is the case, for example, when attempting to balance SIP loads across a cluster of Session Borders Controllers (SBCs), especially when the load balancing solution needs to be highly scalable supporting potentially many hundreds or thousands of SBC entities. There is also a need for load balancing schemes that are completely standards based, requiring no proprietary behavior on the part of any peers and/or intermediaries so that the SBCs can interoperate with other vendors' equipment. Furthermore, there is a need for SIP load balancing solutions that cover multiple application spaces including peering, access, encrypted transports, and Network Address and Port Translation (NAPT) scenarios.
Additionally many environments employ initial load balancing schemes that are not coupled, or are only loosely coupled, to the actual loading of SBCs in the cluster. In many instances, this initial load balancing results in uneven distribution of load within the SBC cluster because the cost for different call flows is disparate. Consequently, SBC load balancing performed within a cluster needs to able to work with the different initial load balancing schemes that may result in poor load balancing by the peers.
As part of scalability, the SIP load balancing needs to be able to work with the dynamic addition of SBCs to the cluster.
The aforementioned problems and needs become amplified when SBC services are implemented as a collection of virtualized SBC instances within a cloud environment where many software instances are needed to match the capabilities of current hardware based SBCs.
It should be appreciated that there is a need for methods and apparatus that can provide SIP load balancing across a cluster of SIP processing entities/devices, e.g., SBCs.
It should further be appreciated that there is a need for methods and apparatus that can provide SIP load balancing across a cluster of SIP processing devices, e.g., SBCs, that provide a highly scalable solution with high performance.
It should be further appreciated that there is a need for methods and apparatus that provide SIP load balancing across a cluster of SIP processing devices, e.g., SBCs, in a completely standards based environment in which no proprietary behavior is required on the part of any peers and/or intermediaries that interact with the SIP processing devices, e.g., SBCs, of the cluster.
It should be further appreciated that there is a need for methods and apparatus that provide SIP load balancing across a cluster of SIP processing devices, e.g., SBCs, that achieves good load balancing across a variety of situations including disproportionate load across different call flows, dynamic addition of nodes, e.g., SBCs, to a cluster, bad distribution of load by peers or first stage load balancing, and other conditions which cause hot-potting within a cluster.
It should be further appreciated that there is a need for methods and apparatus that provide SIP load balancing across a cluster of SIP processing devices, e.g., SBCs, that is highly scalable and whose performance does not appreciably degrade as the number of nodes (SBCs) in the cluster increases.
It should also be appreciated that there is a need for methods and apparatus that provide SIP load balancing across a cluster of SIP processing devices, e.g., SBCs, that provide support for and work with a wide range of application including peering, access, encrypted transports, and NAPT usage.